import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

// 1、 获取Stream流:Stream流代表一条流水线，并能与数据源建立连接
// 2、 调用流水线的各种方法对数据进行处理、计算
// 3、 获取处理的结果，遍历、统计、收集到一个新集合中返回

public class Test {
    public static void main(String[] args) {
        // 案例：现有这样一个列表["张磊","刘一一","张三丰","马飞","张无忌"]
        // 需要将以 "张"开头且长度为3的元素插入一个新的列表中
        ArrayList<Object> list1 = new ArrayList<>();
        Collections.addAll(list1,"张磊","刘一一","张三丰","马飞","张无忌");

        // 先不使用Stream流
        ArrayList<Object> list2 = new ArrayList<>();
        for (Object list : list1) {
            if (list.toString().startsWith("张") && list.toString().length() == 3){
                list2.add(list);
            }
            
        }
        System.out.println(list2);

        // 使用Stream流
        List<Object> list3 = list1.stream().filter(k -> k.toString().startsWith("张")).filter(k -> k.toString().length() == 3).collect(Collectors.toList());
        System.out.println(list3);
    }
}
